#!/usr/bin/env python
# -*- coding: utf-8 -*-
#Coded By s4l1h
#http://pehepe.blogspot.com/
#http://www.21o.org/
from Tkinter import * #sudo apt-get install python-tk
import subprocess
import re
import ImageTk #sudo apt-get install python-imaging-tk
class PyDomainWhois(object):
	# Proje() diye Çağırdığımızda İlk Çalışacak Fonksiyon.
	def __init__(self):
		self.basla()
		self.ozellikler()
		self.aciklama()
		self.kutu()
		self.sorgula_buton()
		self.temizle_buton()
		self.textbox()
	#Tk yı kullanmaya başlayalım.
	def basla(self):
		self.pencere=Tk()
		self.frame1 = Frame(self.pencere)
		self.frame1.pack(side=TOP)
		self.frame3 = Frame(self.pencere)
		self.frame3.pack(side=TOP)
		self.frame2 = Frame(self.pencere)
		self.frame2.pack( side = TOP )

	#Pencere Özellikleri.
	def ozellikler(self):
		self.pencere.title("PyDomainWhois 1.0")
		self.pencere.geometry("800x500")
		self.pencere.tk_setPalette("#3B0B0B")
	def domain_sonuc(self):
		self.temizle()
		if self.whois(self.kutu.get())==True:
			m=self.domain+" Name Is Available"
			self.txtbox.insert(END,str(m))
		else:
			if self.domain=='':
				pass
			else:
				m=self.domain+" Name Is Not Available\n"
				self.txtbox.insert(END,str(m+self.text))
	#Açıklama Kısmını Yazıyoruz..
	def aciklama(self):
		self.ack = Label(self.frame1,fg="#5FB404",font="Verdana 10 bold")
		self.ack["text"]="Domain Name:"
		self.ack.pack(side=LEFT)
	#Domain adının Yazılacağı Kutu
	def kutu(self):
		self.kutu = Entry(self.frame1)
		self.kutu.pack(side=LEFT)
	#Sorgulama Sonuçunun Yazılacağı Textbox
	def textbox(self):
		self.kay = Scrollbar(self.frame2)
		self.kay.pack(side=RIGHT,fill=Y)
		self.txtbox = Text(self.frame2,width=500,height=250,wrap=WORD,yscrollcommand=self.kay.set)
		self.txtbox.pack(side=BOTTOM)
		self.kay.config(command=self.txtbox.yview)
	#Temizle Butonuna Tıkladığında Çalışacak Fonksiyon.
	def temizle(self):
		self.txtbox.delete(0.0,END)
	#Sorgulama Butonumuz.
	def sorgula_buton(self):
		self.resim = ImageTk.PhotoImage(file="oke.png")
		self.buton=Button(self.frame1,text="Lookup!",image=self.resim,compound="right",command = self.domain_sonuc)
		self.buton.pack(side=LEFT)
	#Temizleme Butonumuz.
	def temizle_buton(self):
		self.t_resim = ImageTk.PhotoImage(file="clear.png")
		self.buton=Button(self.frame1,text="Clear!",image=self.t_resim,compound="right", command = self.temizle)
		self.buton.pack(side=LEFT)
	#whois
	def whois(self,domain):
		domain = self.strip_prefix(domain,'http://')
		domain = self.strip_prefix(domain,'www.')
		self.domain=domain
		r = subprocess.Popen(['whois', domain], stdout=subprocess.PIPE)
		self.text = r.stdout.read()
		self.x="No match for"
		if self.x in self.text:
			return True
		else:
			return False
	#domain başındaki http: ve www yı silmek için
	def strip_prefix(self,text, prefix):
	   	if not text.startswith(prefix):
			return text
	    	return text[len(prefix):]

#Projeyi Çalıştır
uyg = PyDomainWhois()
mainloop()
